10 DEFINT a-z:DEF FNr(x)=RND*x+1:DEF FNd(s)=FNr(s)+FNr(s):INK 0,0:INK 3,7:BORDER 0:DIM m(40,24):DIM qx(99),qy(99),qh(99),b(99):d$="rdkoiZaONTMgV&LwHJADq%#*QKEG":SYMBOL 255,223,223,223,0,251,251,251,0:SYMBOL 254,0,4,0,0,0,64,0,0:MODE 1:l=0:g=0:a=1:v=0
20 DEF FNi(a,b,c)=(INKEY(a)+INKEY(b)+INKEY(c))>-3:r=FNd(17):WHILE l<24 AND a=1:l=l+1:CLS:INK 2,25-l:INK 1,l MOD 8+13:PRINT"Descending":FOR i=0 TO 39:FOR j=0 TO 23:m[i,j]=1:NEXT j,i:FOR k=0 TO 6:FOR n=0 TO 6:x=FNr(38):y=FNr(22):w=FNr(n*2):h=FNr(6-n)
30 FOR i=x-w TO x+w-2:xx=MAX(MIN(i,38),1):FOR j=y-h TO y+h-2:yy=MAX(MIN(j,22),1):m[xx,yy]=2:NEXT j,i:PRINT ".";:NEXT n,k:x=0:y=0:mn=19+l:pt=1:e$=CHR$(255)+CHR$(254)+"$/\":FOR i=0 TO mn
40 WHILE m[x,y]<>2:x=FNr(38):y=FNr(22):WEND:qx[i]=x:qy[i]=y:b[i]=1:e$=e$+MID$(d$,l+RND*4,1):qh[i]=FNd(3+l):m[x,y]=i+6:NEXT:c$=CHR$(248):MID$(e$,6,1)=c$:FOR i=0 TO 18+l:WHILE m[x,y]<>2:x=FNr(38):y=FNr(22):WEND
50 m[x,y]=3:NEXT:CLS:FOR j=0 TO 23:FOR i=0 TO 39:k=m[i,j]:PEN k MOD 3+1:PRINT MID$(e$,k,1);:NEXT i,j:z=1:s=-1:WHILE a=1 AND s=-1:up=FNi(58,59,67):dn=FNi(71,63,62):rt=FNi(58,61,62)
60 lt=FNi(67,69,71):ox=qx[0]:oy=qy[0]:nx=ox-rt+lt:ny=oy+up-dn:e=m[nx,ny]:g=g-(e=3):IF e=2 OR e=3 THEN m[ox,oy]=2:LOCATE ox+1,oy+1:PEN 3:PRINT CHR$(254):qx[0]=nx:qy[0]=ny:m[nx,ny]=6:PEN 2:LOCATE nx+1,ny+1:PRINT c$
70 k=2:x=qx[z]:y=qy[z]:IF b[z] THEN k=m[x,y]:nx=x+(x>ox)-(ox>x):ny=y+(y>oy)-(oy>y):t=m[nx,ny]:f=(t<>6)+1:IF t=2 THEN m[x,y]=2:PEN 3:LOCATE x+1,y+1:PRINT CHR$(254):x=nx:y=ny
80 qx[z]=x:qy[z]=y:m[x,y]=k:p=b[z]:z=z MOD (mn-1)+1:s=INKEY(46):IF p THEN LOCATE x+1,y+1:PEN k MOD 3+1:PRINT MID$(e$,k,1)
90 PEN 1:LOCATE 1,25:PRINT "L: ";l;" G: ";g;" E: ";r:c$=CHR$(248+pt):pt=1-pt:IF e>6 THEN c=e-6:qh[c]=qh[c]-1:e=0:IF qh[c]=0 THEN b[c]=0:m[qx[c],qy[c]]=2:v=v+1:LOCATE qx[c]+1,qy[c]+1:PEN 3:PRINT CHR$(254)
100 LOCATE 30,25:PRINT "M: ";qh[c]:r=r+(f=1):f=0:a=(r<1)+1:WEND:r=r+FNd(l*2):CALL &BB18:WEND:CLS:INK 1,26:PRINT "Game Over! Level:";l;" Kills:";v;" Gold:";g:IF a>0 THEN PRINT "You Survived!" ELSE PRINT "You died."
